package com.github.maojx0630.easy.translate.conf;

import java.util.Collections;
import java.util.List;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * @author 毛家兴
 * @since 2024-02-04 11:48
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "easy-translate")
public class TranslateConfig {

  /** 是否开启web返回自动翻译 */
  private boolean enableWebAdvice = true;

  /** 需要翻译的分页返回对象 */
  private List<Page> pageList = Collections.singletonList(new Page("com.baomidou.mybatisplus.core.metadata.IPage", "records"));

  /** 缓存类型 */
  private CacheType cacheType = CacheType.TIMED;

  /** 容量(0表示无大小限制) */
  private int cacheCapacity = 0;

  /** 过期时间( 0 表示无限制，单位毫秒) */
  private long cacheTime = 1000 * 5;

  /**
   * 翻译配置
   */
  private DictConfig dictConfig = new DictConfig();

  public enum CacheType {
    /** 无缓存 */
    NOT,
    /** 最少使用率缓存(容量,过期时间有效) */
    LFU,
    /** 最近最久未使用缓存(容量,过期时间有效) */
    LRU,
    /** 定时缓存(过期时间有效) */
    TIMED,
  }
}
